package com.frcdi.qms.masterdata.domain;

import com.frcdi.qms.common.annotation.Excel;
import com.frcdi.qms.common.core.domain.BaseEntity;
import com.frcdi.qms.common.core.domain.entity.MaterialType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 物料对象 md_material
 *
 * @author cell
 * @date 2023-09-11
 */
@ApiModel(value = "物料对象")
public class Material extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 物料编号 */
    @ApiModelProperty("物料编号")
    @Excel(name = "物料编号")
    private String materialNo;

    /** 物料名称 */
    @ApiModelProperty("物料名称")
    @Excel(name = "物料名称")
    private String materialName;

    /** 物料类型 */
    @ApiModelProperty("物料类型ID")
    @Excel(name = "物料类型")
    private Long materialType;

    /** 物料描述 */
    @ApiModelProperty("物料描述")
    @Excel(name = "物料描述")
    private String description;

    /** 状态（0正常 1停用） */
    @ApiModelProperty("状态（0正常 1停用）")
    @Excel(name = "状态", readConverterExp = "状态（0正常 1停用）")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    @ApiModelProperty("删除标志")
    private String delFlag;

    /** 变更申请单编号 */
    @ApiModelProperty("变更申请单编号")
    @Excel(name = "变更申请单编号")
    private String changeNo;

    /** 版本 */
    @ApiModelProperty("版本")
    @Excel(name = "版本")
    private Long version;

    /** 提交状态（0未提交 1已提交） */
    @ApiModelProperty("提交状态")
    @Excel(name = "提交状态", readConverterExp = "0=未提交,1=已提交")
    private String submitStatus;

    /** 审核结果（0未审 1通过2未通过） */
    @ApiModelProperty("审核结果")
    @Excel(name = "审核结果", readConverterExp = "0=未审,1=通过,2=未通过")
    private String auditResult;

    /** 返回状态（0未返回,1已返回,2驳回） */
    @Excel(name = "返回状态", readConverterExp = "0未返回,1已返回,2驳回")
    private String send;

    @Excel(name = "任务状态", readConverterExp = "0未发起,1已发起,2已撤销")
    private String taskStatus;


    @ApiModelProperty("方法")
    private Long method;

    /** 物料类型对象 */
    private MaterialType materialList;

    private String taskId;

    private Method methodEntity;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setMaterialNo(String materialNo)
    {
        this.materialNo = materialNo;
    }

    public String getMaterialNo()
    {
        return materialNo;
    }
    public void setMaterialName(String materialName)
    {
        this.materialName = materialName;
    }

    public String getMaterialName()
    {
        return materialName;
    }
    public void setMaterialType(Long materialType)
    {
        this.materialType = materialType;
    }

    public Long getMaterialType()
    {
        return materialType;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setChangeNo(String changeNo)
    {
        this.changeNo = changeNo;
    }

    public String getChangeNo()
    {
        return changeNo;
    }
    public void setVersion(Long version)
    {
        this.version = version;
    }

    public Long getVersion()
    {
        return version;
    }
    public void setSubmitStatus(String submitStatus)
    {
        this.submitStatus = submitStatus;
    }

    public String getSubmitStatus()
    {
        return submitStatus;
    }
    public void setAuditResult(String auditResult)
    {
        this.auditResult = auditResult;
    }

    public String getAuditResult()
    {
        return auditResult;
    }

    public MaterialType getMaterialList() {
        return materialList;
    }

    public void setMaterialList(MaterialType materialList) {
        this.materialList = materialList;
    }

    public String getSend() {
        return send;
    }

    public void setSend(String send) {
        this.send = send;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public String getTaskStatus() {
        return taskStatus;
    }

    public void setTaskStatus(String taskStatus) {
        this.taskStatus = taskStatus;
    }

    public Long getMethod() {
        return method;
    }

    public void setMethod(Long method) {
        this.method = method;
    }

    public Method getMethodEntity() {
        return methodEntity;
    }

    public void setMethodEntity(Method methodEntity) {
        this.methodEntity = methodEntity;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("materialNo", getMaterialNo())
            .append("materialName", getMaterialName())
            .append("materialType", getMaterialType())
            .append("description", getDescription())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("changeNo", getChangeNo())
            .append("version", getVersion())
            .append("submitStatus", getSubmitStatus())
            .append("auditResult", getAuditResult())
            .append("send", getSend())
            .append("taskStatus", getTaskStatus())
            .append("method", getMethod())
            .toString();
    }
}
